#include <cmath>
class Space3D
{
public:
	double x;
	double y;
	double z;
	Space3D():x(0),y(0),z(0){};
	Space3D(double xx,double yy,double zz):x(xx),y(yy),z(zz){};
	Space3D(Space3D r1,Space3D r2)
	{
		x = r2.x - r1.x;
		y = r2.y - r1.y;
		z = r2.z - r1.z;
		double length = sqrt(x*x+y*y+z*z) ;
		x = x / length;
		y = y / length;
		z = z / length;
	}
	void operator=(Space3D rhs)
	{
		this->x = rhs.x ;
		this->y = rhs.y ;
		this->z = rhs.z ;
	}
	Space3D operator+(Space3D &rhs)
	{
		Space3D temp;
		temp.x = this->x + rhs.x;
		temp.y = this->y + rhs.y;
		temp.z = this->z + rhs.z;
		return temp;
	}
	Space3D operator-(Space3D &rhs)
	{
		Space3D temp;
		temp.x = this->x - rhs.x;
		temp.y = this->y - rhs.y;
		temp.z = this->z - rhs.z;
		return temp;
	}
	Space3D operator/(const double &rhs)
	{
		Space3D temp;
		temp.x = this->x / rhs;
		temp.y = this->y / rhs;
		temp.z = this->z / rhs;
		return temp;
	}
	Space3D operator*(const double &rhs)
	{
		Space3D temp;
		temp.x = this->x * rhs;
		temp.y = this->y * rhs;
		temp.z = this->z * rhs;
		return temp;
	}
	double operator*(Space3D &rhs)
	{
		return this->x*rhs.x+this->y*rhs.y+this->z*rhs.z;
	}
};




const double pi = 3.1415926535898;
const double R = 1;
const int M = 24;
const int N = 200;
const double Angle_distance = 2 * pi / M;
const double Delta_length = 2 * pi * R / M;
Space3D a_k = Space3D (-1,0,0);	//���䲨ʸ����


const double lm = 3.33564e-9;	//1���� = 3.33564e-9��
const double Mu = pi*4e-7;		//��մŵ���
const double Eps = 8.854e-12;		//��ս�糣��
const double C = 2.998e+8;		//����
const double dt = 0.18 / C; //ʱ�䲽��
const double T = 4.0 ;		//����
const double vt0 = 6.0 ;	//��ֵ�ӳ�
const double E0 = 120*pi;	//��˹�����ֵ
